phpMyAdmin 4.0.x—4.6.2 远程代码执行漏洞 (CVE-2016-5734)
phpMyAdmin 是一个用 PHP 编写的免费软件工具,旨在通过 Web 处理 MySQL 的管理。漏洞在preg_replace
函数中,因为用户提交的信息可以拼接到第一个参数中。
在 PHP 5.4.7 之前,preg_replace
可以将的第一个参数截断,\0
并将搜索模式更改为\e
。它可能导致远程代码执行漏洞。
受影响的版本:
- 4.0.10.16 之前的 4.0.x 版本
- 4.4.15.7 之前的 4.4.x 版本
- 4.6.3之前的4.6.x版本(其实因为这个版本需要PHP5.5+,这个漏洞无法复现)
漏洞复现
启动 PHP 5.3 + Apache + phpMyAdmin 4.4.15.6,启动后,访问http://192.168.44.132:8080
,您将看到phpMyAdmin的登录页面。登录使用root
:root
。
此漏洞需要登录和写入数据的权限。
我们使用这个 POC(https://www.exploit-db.com/exploits/40185/)来重现漏洞。
1 | python3 cve-2016-5734.py -c 'system(id);' -u root -p root -d test http://192.168.44.132:8080/ |